package org.linlinjava.litemall.admin.vo.adminorder;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@Accessors(chain = true)
@ApiModel("门店订单")
public class AdminOrderRespVO {

    @ApiModelProperty("订单 ID")
    private Integer id;

    @ApiModelProperty("管理员 ID")
    private Integer adminId;

    @ApiModelProperty("用户姓名")
    private String nikeName;

    @ApiModelProperty("用户名")
    private String username;

    @ApiModelProperty("店铺 ID")
    private Integer shopId;

    @ApiModelProperty("店铺名称")
    private String shopName;

    @ApiModelProperty("订单备注")
    private String orderRemark;

    @ApiModelProperty("ERP 订单编号")
    private String erpOrderSn;

    @ApiModelProperty("订单编号")
    private String orderSn;

    @ApiModelProperty("订单状态")
    private Byte orderStatus;

    @ApiModelProperty("收货人")
    private String consignee;

    @ApiModelProperty("联系电话")
    private String mobile;

    @ApiModelProperty("收货地址")
    private String address;

    @ApiModelProperty("运费价格")
    private BigDecimal freightPrice;

    @ApiModelProperty("商品单价总和")
    private BigDecimal unitPrice;

    @ApiModelProperty("订单总价（未折扣）")
    private BigDecimal orderPrice;

    @ApiModelProperty("折扣比例")
    private BigDecimal discount;

    @ApiModelProperty("折扣金额")
    private BigDecimal discountPrice;

    @ApiModelProperty("最终折扣后价格")
    private BigDecimal discountLastPrice;

    @ApiModelProperty("实际支付价格")
    private BigDecimal actualPrice;

    @ApiModelProperty("支付状态")
    private Byte payStatus;

    @ApiModelProperty("处理备注")
    private String handleRemark;

    @ApiModelProperty("支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime payTime;

    @ApiModelProperty("发货状态")
    private Byte shipStatus;

    @ApiModelProperty("物流单号")
    private String shipSn;

    @ApiModelProperty("物流渠道")
    private String shipChannel;

    @ApiModelProperty("发货时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime shipTime;

    @ApiModelProperty("确认收货时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime confirmTime;

    @ApiModelProperty("评论状态（0 未评论，1 已评论）")
    private Short comments;

    @ApiModelProperty("订单结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;

    @ApiModelProperty("服务类型")
    private Byte serviceType;

    @ApiModelProperty("添加时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime addTime;

    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
}
